/* 
 * Integrantes: 
*De Sousa, Gissel CI: 19347317
*Matos Carhil CI: 18996765
*Galindez, Jose CI: 20016822
*Gil, Jose Rafael CI: 18104335
 *Seccion: 03 
 * */


import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
//import java.io.BufferedWriter;
//import java.io.FileWriter;
//import java.io.PrintWriter;

public class Principal {
	
	public static void main(String[] args) throws IOException {
		
		
		Seccion Secc = new Seccion();
		BufferedReader lector = new BufferedReader(new InputStreamReader(System.in));
		int opcion;
		String tipo;
		boolean seguir;
		String nroSeccion = "";
		String Cedula = "";
		String Nombre = ""; 
		String Apellido= "";
		String Titulo_Academico= "";
		Estudiante student;
		//Estudiante E = new Estudiante(Cedula,Nombre,Apellido);
		System.out.println("--------------------------------");
		System.out.println("Ingrese los Datos de la Seccion");
		String tip;  	
		System.out.print("\tIngrese numero de la sección ");
		tipo = lector.readLine();
	  	nroSeccion = tipo;
	  	Secc.setNroSeccion(nroSeccion);
		do {
			seguir = false;
			// Menu de opciones
			System.out.println("--------------------------------");
			System.out.println("\t Asignatura Laboratorio 1 ");
			System.out.println("\t ___Menu de Opciones___");

			System.out.println("\t (1) Asignar un Profesor a la Seccion ");
			System.out.println("\t (2) Inscribir un Estudiante a la Seccion ");
			System.out.println("\t (3) Buscar un Estudiante de la Seccion ");
			System.out.println("\t (4) Retirar un Estudiante de la Seccion ");
			System.out.println("\t (5) Aplicar Evaluaciones en la Seccion ");
			System.out.println("\t (6) Imprimir Listado de Estudiantes ordenados por Cedula ");
			System.out.println("\t (7) Imprimir Listado de Estudiantes ordenados por NotaFinal ");
			System.out.println("\t (8) Imprimir Listado de Estudiantes Aprobados ");
			System.out.println("\t (9) Imprimir Listado de Estudiantes Reprobados ");
			System.out.println("\t (10)Imprimir Promedio de Notas de la Seccion ");
			System.out.print("\t ___Seleccione una Opcion___  ");
			// Lectura de la opcion seleccionada
			opcion = Integer.parseInt(lector.readLine());

			switch (opcion)
			{
			case 1: 
					{
						System.out.println("\tIngrese los Datos del Profesor ");
					 	System.out.print("\t Cedula: ");
					 	tip = lector.readLine();
					 	Cedula = tip;
					    System.out.print("\tIngrese Nombre: ");
					    tip = lector.readLine();
						Nombre = tip;
						System.out.print("\tIngrese Apellido: ");
						tip = lector.readLine();
						Apellido = tip;
						System.out.print("\tIngrese Titulo Academico: ");
						tip = lector.readLine();
						Titulo_Academico = tip;
						Profesor profesor= new Profesor(Cedula,Nombre,Apellido,Titulo_Academico);
						Secc.asigProfesor(profesor);
					    System.out.println("\n\tEl profesor ha sido asignado a la seccion: "+ Secc.getNroSeccion() );
					}
					break;
			case 2:
					{
						int resp = 0;
						System.out.println("\tIngrese datos del estudiante");
						do
						{
							System.out.print("\t Cedula: ");
							Cedula = lector.readLine();
							if(Secc.VerificarEstudiante(Cedula)== false)
							{
								System.out.print("\tIngrese Nombre: ");
								Nombre = lector.readLine();
								System.out.print("\tIngrese Apellido: ");
								Apellido = lector.readLine();
								student = new Estudiante(Cedula,Nombre,Apellido);
						
								Secc.inscribirEstudiante(student);
								System.out.println("\tEstudiante Inscrito Satisfactoriamente");
								System.out.print("\t¿Desea inscribir otro estudiante? 1:Si, 2:No");
								resp = Integer.parseInt(lector.readLine());
							}
							else
							{
								System.out.println("\tEl estudiante ya esta inscrito");
								resp=1;
							}
						}
							   while (resp == 1);
							}

					break;
			case 3:
					{
					System.out.print("Ingrese la Cedula del Estudiante: ");
					tipo = lector.readLine();
					Cedula= tipo;
					Secc.buscarEstudiante(Cedula);
					}
					break;	
			case 4:
					{
						String aux;
						System.out.println("\tIngrese la Cedula del Estudiante a Retirar");
						aux= lector.readLine();
						Cedula = aux;
						Estudiante er=Secc.retirarEstudiante(Cedula);
						if (er == null)
							System.out.println("No se puede retirar, Estudiante no inscrito");
						else
						{
					      System.out.println("Se retiró el estudiante satisfactoriamente");
				    	  System.out.println("Datos del Estudiante Retirado de la Seccion");
				    	  System.out.println(er.getCedula());
				    	  System.out.println(er.getNombre());
				    	  System.out.println(er.getApellido());
						} 
					}
				break;
			case 5:
					{
					if (Secc.getProfesor()== null)
					{
						System.out.println("No hay profesor asignado");
					}
					else
						Secc.aplicarEvaluaciones();
					}
				break;
			case 6:
					{
						Secc.EstudiantesOrdenadosCedula();
						Secc.Imprimir();
						Secc.GuardarArchivo("Listado Ordenado por Cedula de Alumnos");
					
					}				
					break;
			case 7:
					{
						Secc.listarNotaFinal();
						Secc.Imprimir();
						Secc.GuardarArchivo("Listado de Estudiantes Ordenados por Nota Final");
					
					}
				break;
			case 8:
					{
					Secc.listarAprobados();
					Secc.GuardarArchivo("Listado de Estudiantes Aprobados");
					}
				break;
			case 9:{
					Secc.listarReprobados();
					Secc.GuardarArchivo("Listado de Estudiantes Reprobados");
					}
				break;
			case 10: 
					{
					Secc.promedioNotasSeccion();
					}
			break;
			default:  System.out.println("Ingrese una opcion Válida ");
				
		} //llave del switch
		System.out.println("Desea Volver al Menu Principal del Programa (S/N) ");
		String resp= lector.readLine();
		if (resp.toLowerCase().equals("s"))
			seguir = true;
		else seguir = false;
		} while (seguir); 
	
	}//llave del main
}
